package com.toledo.salao.pessoa;

import java.util.Date;
import java.util.List;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;

@ManagedBean(name = "pessoaBean")
@RequestScoped
public class PessoaBean {

	private Pessoa pessoa = new Pessoa();
	private List<Pessoa> lista;
	private String destinoSalvar;

	public String novo() {
		this.destinoSalvar = "pessoaSucesso";
		this.pessoa = new Pessoa();
		this.pessoa.setAtivo(true);
		return "pessoa";
	}

	public String editar() {
		return "/publico/pessoa";
	}

	public String salvar() {
		PessoaRN pessoaRN = new PessoaRN();
		this.pessoa.setUltimo_acesso(new Date());
		this.pessoa.setAtivo(true);
		pessoaRN.salvar(this.pessoa);

		return "/publico/pessoaSucesso";
	}

	public String excluir() {
		PessoaRN pessoaRN = new PessoaRN();
		pessoaRN.excluir(this.pessoa);
		this.lista = null;
		return null;
	}

	public String ativar() {
		if (this.pessoa.isAtivo())
			this.pessoa.setAtivo(false);
		else
			this.pessoa.setAtivo(true);

		PessoaRN pessoaRN = new PessoaRN();
		pessoaRN.salvar(this.pessoa);
		return null;
	}

	public List<Pessoa> getLista() {
		if (this.lista == null) {
			PessoaRN pessoaRN = new PessoaRN();
			this.lista = pessoaRN.listar();
		}
		return this.lista;
	}

	public Pessoa getPessoa() {
		return pessoa;
	}

	public void setPessoa(Pessoa pessoa) {
		this.pessoa = pessoa;
	}

	public String getDestinoSalvar() {
		return destinoSalvar;
	}

	public void setDestinoSalvar(String destinoSalvar) {
		this.destinoSalvar = destinoSalvar;
	}

	public String atribuiPermissao(Pessoa pessoa, String permissao) {
		java.util.Set<String> permissoes = this.pessoa
				.getPermissao();
		if (permissoes.contains(permissao)) {
			permissoes.remove(permissao);
		} else {
			permissoes.add(permissao);
		}
		return null;
	}

}
